IDL 7.0 Release Notes

Note
Visit www.ittvis.com/IDL for additional information and late-breaking release notes.

The information found in these release notes is separated into the following sections:

ID numbers are included where applicable to allow ITT Visual Information Solutions to respond to inquiries more easily.

New Features in IDL 7.0

For information on new features in this release, see the What's New in IDL 7.0 manual. What's New is included as part of the IDL online help system.

back to top

Backward-Compatibility Issues in IDL 7.0

All Platforms

ID
Description

44008

Export Bridges: IDL Error State and Successful Method Return

If your client creates an instance of a COM/Java Export Bridge wrapper object, and calls an object method whose code throws an error, the wrapped method will return an error unless the referenced code resets the internal IDL error state.

In this circumstance, it is best if the wrapped code catches its own error, handles it, and resets the IDL error state. You can reset the IDL error state in the error handling catch block by calling the MESSAGE procedure:

MESSAGE, /RESET

This procedure call sets the !ERROR_STATE system variable back to the "success" state.

49528

!PATH Seems to Change on its own

By default, the IDL Workbench manages the value of !PATH so that files in your project directories are found. The consequences of this automatic management may be unexpected, especially if you also modify the value of !PATH manually. See "IDL Path Management" in the IDL online help system for a detailed explanation.

n/a

PREF_MIGRATE Routine Not Called Automatically

Beginning with IDL 7.0, PREF_MIGRATE is no longer called automatically the first time IDL is run. You can still use PREF_MIGRATE to manually migrate IDL system preferences. IDL Workbench preferences are managed separately, by the workbench itself. For more on the difference between system and workbench preferences, see "IDL System Preferences" in the IDL Reference Guide.

n/a

New Process for Debugging Shared Library Code

Beginning with IDL 7.0, when the IDL Workbench is running there are two processes to which you can connect your debugger: the IDL Workbench (idlde) and the IDL out-of-process server (idl_opserver). The idl_opserver is the IDL process that runs the IDL interpreter and loads shared libraries (DLMs). To debug your shared library code, you need to attach your debugger (gdb, Visual Studio, etc.) to the idl_opserver process. On Windows, using Visual Studio, you can select Attach to Process and choose the idl_opserver.exe process. On Unix, using gdb or dbx, you can use the ps command to retrieve the ID of the idl_opserver process, and then attach your debugger to that process ID.

If you are not using the IDL Workbench, continue to connect to the idl process.

back to top

Windows Platforms

ID
Description

n/a

Location of the IDL Workbench Executable (idlde.exe) has changed in IDL 7.0

The location of the idlde.exe file has changed. In IDL 6.4 the default location was: C:\Program Files\ITT\IDL64\bin\bin.x86\idlde.exe

In IDL 7.0 the default location is: C:\Program Files\ITT\IDL70\idlde\idlde.exe                                                                        

UNIX Platforms

ID
Description

n/a

IDL Installation Can Fail on Linux 64-bit Systems That Do Not Contain 32-Bit Compatibility Libraries

IDL may not install correctly on a pure 64-bit Linux system. If installation fails, install your platform's 32-bit compatibility libraries.

48917
49373

Breakpoints in Files Opened via UNIX Links

To improve performance, IDL always compiles the first version of a file it finds in its path. If you open a file that has been linked using the UNIX ln command in the editor and set a breakpoint, then compile from a version of the same file with a different path, IDL will not assume that the two files are the same. As a result, IDL will not stop at the breakpoint set in the linked file.

Workaround: Make sure that the full path to the file in which you set the breakpoint is the same as the full path to the compiled file. If you use the IDL Workbench, compiling using the Workbench menus or toolbars will ensure that the same path is used for compilation and debugging.

49251

IDL Workbench Does Not Automatically Run in Background

In IDL 7.0, when the IDL Workbench (idlde) is run from a terminal window, the window is not available for other commands while the Workbench is running.

Workaround: To run the IDL Workbench in the background, add an ampersand (&) to the terminal command:

idlde &

back to top

Problems Corrected in IDL 7.0

Windows Platforms

ID
Description

46881

License Wizard Does Not Run on Solaris with Java Desktop

In IDL 6.4, Solaris Java Desktop did not correctly run the License Wizard after IDL installation. This problem has been corrected.

47474

IDL crashes when attempting graphics operations on some Linux distributions

On some linux systems, IDL 6.4 crashed when a attempting graphics operations on certain Linux distributions when direct rendering is enabled. This may include rendering the IDL splash screen when starting IDL. The problem was due to a conflict with DRI drivers and has been corrected.

Macintosh Platforms

ID
Description

42012

Errors When Running the ITTLicense Application

In IDL 6.4, sometimes the ITTLicense application failed to start the license server automatically at boot time. This is a permissions problem. Now IDL issues a warning message if the user does not have permission to write to the installation directory when attempting to install the license manager.

47331

Missing Manifest Files

In IDL 6.4, a line was inadvertently left out of the manifest_rt.txt file. This problem has been corrected.

back to top

Known Problems in IDL 7.0

All Platforms

ID
Description

40768

Firewall Can Catch Socket Communication between IDL and the Help System

IDL and its help systems (both the current help viewer and the older IDL Assistant help viewer) communicate via sockets, and some firewalls might question this communication. IDL is not trying to access the Internet; the communication is strictly between IDL and its locally installed help systems. If prompted to allow or deny the communication, you should allow it; otherwise, you will not be able to see or use IDL's online help. You might need to configure your firewall software to allow the communication.

42545

WIDGET_TREE Drop Event Can Cause IDL to Crash if an Error Exists in the DRAG_NOTIFY Callback Routine

A tree widget can be configured to support drag and drop functionality. This functionality includes a callback to either the default callback routine, which provides information about where a node can be dropped, or a callback to a custom callback routine that is specified using the DRAG_NOTIFY keyword. In either case, the parent WIDGET_TREE function calls the child callback routine and the IDL processing focus switches to the callback routine. If there is an error (such as an undefined variable) in the custom callback routine, IDL may freeze or crash since the error halts execution in the child routine and IDL is unable to return to the calling function.

Workaround: Handle potential problems in the callback routine by including CATCH statements in the code you are developing. See the documentation topic "Responding to Drag Notifications (Callbacks)" for more information.

43054

Java Export Bridge: Hardware Rendering Not Supported By All Video Cards

When running IDL applications through the Java Export Bridge, some video cards on some systems experience problems that prevent them from rendering graphics properly. As a result, the Java Export Bridge creates applications that use IDL's built-in (software) renderer by default. Even systems that use hardware rendering successfully when running IDL itself can experience the problem when running the Java Export Bridge.

Workaround: If you know that the target system for your application will display graphics properly using hardware rendering, you can explicitly set the renderer in the Init method for your application. Since a graphical application must inherit (directly or indirectly) from the IDLgrWindow class, you can set the RENDERER property equal to 0 to force the use of hardware (OpenGL) rendering if it is available. Note that the RENDERER property is not exported by the Export Bridge Assistant; the value must be hard-coded in your IDL object code.

43116

Text Annotations Added During Macro Creation Are Incorrectly Placed or Missing

The iTools let you create a macro that records the operations that occur within a visualization window. If you add a text annotation during macro recording and close the annotation operation by clicking on the view instead of pressing the Enter key, an additional translation event is added to the macro. This causes the text annotation to be incorrectly placed when you run the macro.

Workaround: Always close the creation of a text annotation by pressing the Enter key (instead of by clicking on the view) when recording a macro in an iTool window.

43599

A 32-bit Application Cannot be Built On 64-Bit Linux

It is not possible to use 32-bit libraries on a 64-bit Linux machine to build a 32-bit Callable IDL application.

Workaround: Build a 32-bit application on a 32-bit machine. Then you can execute that application on a 64-bit system that contains 32-bit compatibility libraries.

43733

Connectivity Bridges: Dialog Windows May Appear Behind the Main Application Interface

Dialog windows that are launched from a child IDL_IDLBridge process, or other background process such as an Export Connectivity Bridge wrapper object may appear behind the current application interface and be completely hidden. The background process has no way to force a dialog to appear in the foreground.

43808

Export Bridges: IDL Error Codes May Change Between Releases

Both the COM and Java Export Bridges allow you to catch and respond to errors generated by IDL. Errors are returned from IDL in the form of error codes, corresponding to the value of the !ERROR_STATE.CODE system variable field.

The code used to designate a specific IDL error condition can change from one release of IDL to another. As a result, COM or Java code you write that reacts to a specific error code value may behave differently with different IDL releases.

43850

Java Export Bridge: Error if Non-Drawable Object Instantiated First

If you create a Java application that incorporates both drawable and non-drawable IDL wrapper objects, instantiating the non-drawable object before the drawable object will cause a runtime error that looks something like:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Native Library 
path_to_your_AWT_library already loaded in another classloader 

Workaround: Create an instance of a drawable wrapper object first. This will initialize the Java export bridge correctly, allowing both drawable and non-drawable wrapper objects to execute properly.

48165

Deleting Linked Folders Does Not Update !path or IDL_PATH

When a linked folder is deleted from a project, the folder is not removed from the !path system variable and the IDL_PATH system preference.

Workaround: Remove these items manually from your path settings.

48550

The STATUS Keyword for EXIT Does Not Work in IDL 7.0 Workbench

The EXIT procedure quits the IDL Workbench and exits back to the operating system. IDL does not correctly return the exit status set by the STATUS keyword.

49236

Deleting a Project or a Directory Within a Project While the Project Is Open Causes Exceptions when the Workbench Exits

When a project file or a directory within a project is deleted (for example, from Windows Project Explorer), while the project is open may result in a warning message while the Workbench is still running, and an exception on exiting the Workbench.

back to top

Windows Platforms

ID
Description

40851

WIDGET_DRAW WHEEL_EVENTS Can Arrive Out of Sequence of Other Draw-Widget Events

The draw widget delivers scroll-wheel events to the IDL event queue when it gets the wheel event from Windows. The draw widget cannot know whether events are arriving late from Windows. This is not an IDL problem.

If you want to take advantage of the scroll-wheel functionality, you might want to ensure that you have a robust scroll-wheel-enabled mouse driver. Check your mouse's documentation for more information.

42359

Incompatibility Between IDL and Microsoft Intelli-Mouse with Fingerprint Reader

If you are using the Microsoft Intelli-Mouse with Fingerprint Reader on the system that runs IDL, IDL may close unexpectedly in some cases.

Workaround: Shut down the Digital Personal Password manager software that comes with the Microsoft Intelli-Mouse.

46816

Installation Program Failures: Error 1719

On some systems, the IDL installation program may exit with the following error:

Error 1719.Windows Installer service could not be accessed.  Contact your 
support personnel to verify that it is properly registered and enabled. 

Workaround:

Restart the IDL installer. If installation still fails, reboot the computer and restart the installer.

Background:

This error occurs when the Microsoft installer engine is older than the version required by the IDL installation package. In this situation, the IDL installer updates the installer engine. In some cases, the installation procedure may be able to proceed; in others (most notably on Windows 2000 systems), a restart of the installer or of the operating system may be required.

47445

Object Creation Failure with Embedded License

Attempting to create an export object with an embedded license fails when no printer is set up.

Workaround: Install and set up a printer before running IDL.

48454

WIDGET_TIMER Can Cause Applications To Freeze Until An Event Is Sent To The Application

WIDGET_TIMER events fail after 10 events. This problem happens in the following cases:

  • Timer events are chained together by setting the next timer within the handling of the current timer and before the "work" section of the event handler is performed.
  • The next timer goes off during the current timer event processing (for example, during a lengthy calculation).

Workaround: Chain timer events by setting the next timer after any computations are completed. For smoother performance, set the next timer based on how long the computations take to execute, which accounts for variances in machine speed. For example, to fire the timer once every second, set the next timer to 1.0 - (time to perform computation), or to 0.0 if the value is negative.

49389

Windows and Dialogs opened by IDL Can Display Behind the Workbench

If the last window opened by IDL displays behind the Workbench, then all subsequent windows and dialogs will open behind the Workbench. If a window is brought into the foreground and dismissed, the next window or dialog that is opened appears in front of the Workbench.

49522

CVS Cheat Sheets Show Up In IDL Workbench Cheat Sheet List

Selecting Cheat Sheets from the Workbench *Help* menu shows a "Team/CVS" category containing two CVS-related cheat sheets. CVS functionality is not included in the IDL Workbench by default, and these cheat sheets will not function properly. If you later install the CVS plug-ins, these cheat sheets will function normally.

49604

Workbench Fails to Stop on Breakpoints When IDL is Busy (Blocking)

When a program containing breakpoints is run while IDL is busy (when a lengthy command is being executed, or when a widget application is blocking, for example), IDL does not stop at the set breakpoints. When IDL is no longer busy, running the program with breakpoints successfully stops at the set breakpoints. (Related to ID 49641.)

49641

Updating Edited Variable Values While IDL is Busy or Blocking is Slow

If you edit a variable value using the IDL Workbench Variables view while IDL is busy (when a lengthy command is being executed, or when a widget application is blocking, for example), it may appear that the variable is not being updated. The new variable value is displayed when IDL is no longer busy. (Related to ID 49604.)

back to top

UNIX Platforms

ID
Description

30564

DIALOG_PRINTERSETUP Causes IDL to Hang When Called from Modal Widget

This is a known problem with no known workarounds except to use DIALOG_PRINTERSETUP with a non-model widget.

41964

IDL Does Not Run in Security Enhanced Linux

Some recent versions of Linux implement mandatory access control in the Linux kernel using the Linux Security Modules framework. IDL will not run in such an environment without a modification to the security context for the IDL binaries.

Workaround: Either disable SELinux or make a modification to the default security context for IDL. See Tech Tip 3092 for details.

42609

WIDGET_BUTTON Bitmaps Not Found in Resource Directory

Using the VALUE keyword of WIDGET_BUTTON lets you specify the name of a bitmap image file to be used as the button label. On UNIX, this bitmap file is not being located in the IDL_DIR/resource/bitmaps directory and causes a "Can't open bitmap file" error. This occurs when only the name of the file (and not a complete path) is given. On Windows, a bitmap file identified by name only is correctly located.

Workaround: Always specify the complete path to the bitmap file. For example, to use the arrow.bmp file, you could use FILEPATH as follows:

   bmpath = FILEPATH('arrow.bmp', SUBDIRECTORY=['resource', 'bitmaps']) 
   b = WIDGET_BUTTON( tlb, VALUE=bmpath, /BITMAP) 

42641

Error May Occur After First Launch of IDL Assistant with Root Privileges

If you receive the following error after the first use of the IDL Assistant (the online-help viewer), "QSetting::sync: filename is null/empty," the problem is most likely due to file permissions.

Workaround: Change the ownership on the .qt and .assistant folders and files in your home directory:

   chown -R <user> .qt 
   chown -R <user> .assistant 

where <user> is your user name.

43301

Upper Left Corner of Tree Widget is Never Valid Drop Zone

When the ability to drag and drop tree widget nodes has been enabled, the UNIX tree widget does not recognize the upper left corner of the widget as a valid drop zone. This area typically extends over the icons of the first two nodes (but not the labels). This is a vendor issue. You can drop items onto the first two nodes by moving the mouse cursor over the labels instead of the icons.

46672

Using WAIT with IDLffMJPEG2000 on Solaris 10 causes IDL to freeze

On Solaris 10 systems, using a WAIT statement in code that calls IDLffMJPEG2000 object methods may cause IDL to freeze.

Workaround:

Use a widget timer to generate WIDGET_TIMER events in place of WAIT to control the flow of execution. For an example using a widget timer to control the frame rate of displayed frames, see IDL_DIR/examples/doc/objects/mj2_timer_doc.pro, where IDL_DIR is the location of your IDL installation. For additional information, see "Controlling Playback Rate" in the "Animations" chapter of the Using IDL manual.

47348

Unable To Create Exported IDL object in Virtual Machine Mode on Solaris When LANG Environment Variable is Set to C

The IDL Virtual Machine does not start when called from a java program or the command line because the splash screen cannot be displayed when the LANG environment variable is set to C.

Workaround: Unset the LANG environment variable before using Java to run your exported IDL code. Note that other programs (including IDL) may rely on the value of the ~LANG~ environment variable, so removing it permanently from your environment may have unwanted side effects.

49527

IDL Interpreter Suspends on OBJ_NEW('idlgrwindow') Until IDLgrWindow is Partially Visible (Redhat Enterprise 4)

When OBJ_NEW('idlgrwindow') is run from the Workbench, if a new window displays beneath the Workbench window, then the command line is desensitized until the Workbench is moved or minimized to make the IDLgrWindow at least partially visible.

49610

Closing the Workbench While It Is Iconified Causes It To Lock Up (Solaris)

When at least one IDL process is running and the Workbench is iconified (minimized) and then closed from the icon, the Workbench hangs until all process are manually killed.

Workaround: Use the IDL Workbench menu or the IDL EXIT command to shut down the IDL Workbench.

back to top

Macintosh Platforms

ID
Description

41410

Click-Through Focus Problem on Mac OS X 10.4 (Tiger)

In some instances, focus can remain stuck on a window, despite subsequent window commands. For example, if you type these consecutive commands at the IDL command line:

PLOT, FINDGEN(99) 
ZOOM 

the plot window does not get focus after the ZOOM command. The command locks up IDL because any attempt to click on the plot window, in order to tell ZOOM where to zoom, is thwarted because the window manager is swallowing the focus click.

Workaround: Change the X11 start-up parameters. Do the following:

1. Open an X11 terminal window.

2. Enter the following at the shell prompt:

   defaults write com.apple.x11 wm_click_through -bool true 

3. Quit X11.

The new default will not take effect until after you restart X11, but it will persist from that point (i.e., you will not have to make the change again).

41916

Errors When Starting the DICOM Service

If you install the DICOM Network Services module, the installer allows you to specify that the DICOM service be started automatically at boot time. If you encounter an error that looks like:

   dicomexstorscp_install error 
   There was an error encountered running 
   idl_7.0/bin/dicomexstorscp_install. 

then your Administrator group may not have permission to modify items in the appropriate StartupItems directory.

Workaround:

1. Log in as root.

2. Open a terminal window.

3. Enter the following commands:

   cd ~ 
   touch .profile 

4. Change to the directory where ITT Visual Information Solutions products are installed (by default, /Applications/itt):

   cd /Applications/itt 

5. Enter the following command:

   ./idl70/bin/dicomexstorscp_install 

47334

Java Bridge: Macintosh uses a different version of Java demo_world example

A java incompatibility on Macintosh causes the demo_world example to work incorrectly. The program (located in ITT_DIR\IDL70\resource\bridges\import\java\examples\) should allow a user to click and drag to change the focus of the globe, but does not work on Macintosh.

47668

Drag and drop .pro file from Navigator to Editor does not open the file

In some cases, dragging a file with the .pro extension from the Navigator to the IDL Workbench Editor is unsuccessful.

Workaround: Open .pro files from within the IDL Workbench. If installed in Applications, double-clicking on a file it will open it in the Workbench.

48280

CDF Routines Read Data Incorrectly on Intel-based Macintosh

The version of the CDF library included with IDL 7.0 does not correctly adjust for the little-endian byte ordering used by Intel-based Macintoshes.

In some cases, this may result in IDL on an Intel-based Macintosh reading the data in a CDF file incorrectly.

Workaround: The CDF libraries are maintained by CDF users at the Goddard Space Flight Center. A patched library is available from Goddard at http://cdf.gsfc.nasa.gov/html/cdf_patch_for_idl6x_new.html

Note that this patch works for IDL 7.0 as well as for IDL 6.4.

back to top